package homework.work01

import scala.io.Source
/* 提供了从文件、URL和其他来源读取数据的方法。 */
object huiwen {
  def main(args: Array[String]): Unit = {
    val fileName = "C:\\Users\\86188\\Desktop\\高级大数据技术\\word.txt"
    /* 调用了readFile方法，并将文件名作为参数传递给它，以读取文件内容。读取的文本内容将存储在text变量中。 */
    val text = readFile(fileName)
    /* 文本内容作为参数传递给它，以过滤出回文单词。过滤出的回文单词将存储在palindromes变量中 */
    val palindromes = filterPalindromes(text)
    println(s"原始文本: $text")
    println(s"回文单词: $palindromes")
  }

  def readFile(fileName: String): String = {
    /* 定义readFile的方法，接受一个字符串参数fileName，并返回一个字符串，表示从文件中读取的内容。
    使用Source.fromFile方法创建了一个Source对象，该对象用于从指定文件中读取数据。
    使用mkString方法将Source对象中的内容读取为一个字符串，并将其赋值给content变量。
    关闭Source对象，释放了与文件的连接*/
    val source = Source.fromFile(fileName)
    val content = source.mkString
    source.close()
    content
  }

  def filterPalindromes(text: String): List[String] = {
    /* 将文本内容按照空白字符分割成单词数组，然后使用filter方法过滤出回文单词。
    匿名函数word => word.toLowerCase == word.toLowerCase.reverse检查单词是否是回文单词（忽略大小写）。
    最后，toList方法将过滤后的结果转换为列表。 */
    text.split("\\s+").filter(word => word.toLowerCase == word.toLowerCase.reverse).toList
  }

}
